The present disclosure relates generally to management of virtualized environments and more particularly to snapshot management.
In computer systems, a snapshot is the state of a system and/or its constituent files at a particular point in time. High-availability systems may perform a backup of a large data set as a read-only snapshot, allowing applications to continue writing to their data while preserving a copy for recovery. Virtualization, sandboxing and virtual hosting may use read-write snapshots, which create diverging versions of the data, to manage changes to large sets of files. Many read-write snapshot implementations, such as VMware®'s VMDK (Virtual Machine Disk), Kernel based Virtual Machine's (KVM®) Quick EMUlator Copy on Write (QCOW), and IBM®'s Flashcopy, only save file data when the data in a snapshotted file is modified, making the time and computer resources, such as storage and processor cycles, required to create a snapshot of a file independent of the size of the file, or O(1).
The big O notation of O(1) is used in Computer Science to describe the performance or complexity of an algorithm. O(1) describes an algorithm that will always execute in the same time (or space) regardless of the size of the input data set. In other words, the time and I/O needed to create the snapshot does not increase with the size of the data set.